package br.com.controlador;

import br.com.modelo.Empresa;
import br.com.modelo.NfeCabecalho;
import br.com.modelo.NfeDetalhe;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import util.JPAUtil;
import util.JSFUtil;

/**
 *
 * @author gilberto.costa 20/07/2012
 */
@ManagedBean
@ViewScoped
public class NfeControler implements Serializable {

    private NfeCabecalho nfe;
    private NfeCabecalho[] listNfeSelecionadas;
    private NfeDetalhe nfeDetalhe;
    private List<NfeCabecalho> listNfe;

    @PostConstruct
    public void init() {
        setNfeDetalhe(new NfeDetalhe());
        nfe = new NfeCabecalho();
        listNfe = JPAUtil.buscarTodos(NfeCabecalho.class);
        nfe.setEmpresa((Empresa) JPAUtil.buscarPorId(Empresa.class, 1));//buscando a empresa com ID = 1
    }

    /**
     * @return the nfe
     */
    public NfeCabecalho getNfe() {
        return nfe;
    }

    /**
     * @param nfe the nfe to set
     */
    public void setNfe(NfeCabecalho nfe) {
        this.nfe = nfe;
    }

    /**
     * @return the listNfe
     */
    public List<NfeCabecalho> getListNfe() {
        return listNfe;
    }

    /**
     * @param listNfe the listNfe to set
     */
    public void setListNfe(List<NfeCabecalho> listNfe) {
        this.listNfe = listNfe;
    }

    /**
     * @return the listNfeSelecionadas
     */
    public NfeCabecalho[] getListNfeSelecionadas() {
        return listNfeSelecionadas;
    }

    public NfeDetalhe getNfeDetalhe() {
        return nfeDetalhe;
    }

    public void setNfeDetalhe(NfeDetalhe nfeDetalhe) {
        this.nfeDetalhe = nfeDetalhe;
    }

    /**
     * @param listNfeSelecionadas the listNfeSelecionadas to set
     */
    public void setListNfeSelecionadas(NfeCabecalho[] listNfeSelecionadas) {
        this.listNfeSelecionadas = listNfeSelecionadas;
    }

    public void pegaItemSelecionado() {
        if (listNfeSelecionadas.length == 0) {
            JSFUtil.addMessageErro("Selecione pelo menos uma venda!");
        } else if (listNfeSelecionadas.length >= 2) {
            JSFUtil.addMessageErro("Selecione apenas 1 item");
        } else {
            NfeCabecalho venda = JPAUtil.buscarPorId(NfeCabecalho.class, listNfeSelecionadas[0].getId());
            nfe = venda;
            org.primefaces.context.RequestContext.getCurrentInstance().execute("ItensNota.show();");
        }
    }
}
